/**
 * Setvor project
 */
package setvor.lang.machine;

import java.util.Set;

import setvor.lang.*;

/**
 * @author julatec
 *
 */
public abstract class FiniteAutomaton<Q extends State<Q>, S> extends 
	AbstractAutomaton<Q, S> {
	
	private Set<Q> states;
	
	private Set<Q> initial; 

	protected FiniteAutomaton(Set<Q> states, Set<Q> initial){
		this.states = states;
		this.initial = initial;
	}

	public Set<Q> getStates(){
		return states;
	}
	
	public Set<Q> getInitialState(){
		return initial;
	}
	
	public final boolean isFinite(){
		return true;
	}
	
}
